Rust modern memanfaatkan pemrograman fungsional prinsip untuk memberikan abstraksi tanpa biaya. Dengan memperlakukan fungsi sebagai nilai dan data sebagai aliran yang tidak dapat diubah, Rust memungkinkan operasi I/O yang ekspresif operasi I/O tanpa mengorbankan kinerja.
1. Lingkungan & Penutupan
Berbeda dengan fungsi standar, penutupan dapat Menangkap Lingkungan Mereka. Mereka menggunakan Fn, FnMut, atau FnOnce trait untuk mengelola Pemindahan kepemilikan dalam penutupan, memastikan bahwa keamanan memori tetap terjaga meskipun fungsi membawa status.
let v1_iter = v1.iter().map(|x| x + 1);
// v1_iter bersifat lambat dan belum berjalan!
2. Pipeline Deklaratif
Dengan menggunakan Adaptor Iterator, para pengembang menggantikan loop bersarang yang panjang dengan logika ringkas. Metode iter_mut memungkinkan transformasi fungsional yang aman secara langsung, sementara kompiler mengoptimalkan panggilan tingkat tinggi ini menjadi kode rakitan yang setara dengan loop yang ditulis secara manual.
3. Benchmark Kinerja
Ketika dikompilasi dalam profil dev atau rilis, fungsi search fungsi membuktikan efisiensinya. Benchmark statistik menunjukkan: test bench_search_iter ... bench: 19.234.900 ns/iter. Ini menegaskan bahwa abstraksi ini benar-benar tanpa biaya.
collect() atau sum().